Messaging systems provide a way for heterogeneous machines to communicate with one another via one or more queues managed by a queue manager.
An exemplary system is shown in FIG. 1. Client 10 wishes to have server 60 perform some work on its behalf. Client 10 therefore puts a message 20 onto queue 40 managed by queue manager 30. Server 60 is listening on queue 40 and gets messages from the head of queue 40. Server 60 can thus perform the work requested by client 10 using message 20.
Currently, messaging systems can be vulnerable to malicious security attacks where a third party sends a message intended to cause the system to, at the very least, operate less efficiently; a so called “poison message.” Messages which a system recognizes as invalid can be shelved off to a separate queue for further investigation. A poison message, in this instance, is a message which the receiving system does not recognize as problematic but which will typically cause a part of that system to fail.
Failure of a component is particularly problematic when that component is shared by multiple entities. An outage can result for such entities. Such exposures can be fixed by either programming the queue manager itself or an exit program to identify the signature of such poison messages and take action. Such solutions, however, require additional programming and can only be implemented once a component of the queue manager has failed and the problem investigated. This solution may also not be effective if the signature of the poison message is continually changing.